package controller;

import java.util.HashMap;

import model.Tile;
import model.iview.ITile;
import util.Coordinate;
import view.IBoardView;
/**
 * 
 * @author Lucile Gramusset et Guillaume Poussel
 *
 */
public class BoardController extends AbstractController {

    private IBoardView view;

    /**
     * Construit un contrôleur pour le plateau
     * @param parent Contrôleur de jeu, parent de celui-ci
     * @param boardModel Plateau de jeu
     */
    public BoardController(GameController parent, IBoardView boardView) {
        super(parent);
        view = boardView;
    }

    /**
     * @return La vue du plateau
     */
    protected IBoardView getView() {
        return this.view;
    }

    /**
     * @return Les tuiles fraîchement posées par l'utilisateur
     */
    public HashMap<Coordinate, Tile> getNewTiles() {
        HashMap<Coordinate, ITile> newTiles = view.getNewTiles();
        HashMap<Coordinate, Tile> map = new HashMap<Coordinate, Tile>();
        for (Coordinate c : newTiles.keySet()) {
            map.put(c, (Tile) newTiles.get(c));
        }
        return map;
    }

    /**
     * "Fixe" toutes les tuiles de la vue
     */
    public void fixAllTiles() {
        view.fixAllTiles();
    }

    /**
     * Repose sur le rack toutes les tuiles non fixées
     */
    public void resetAllNonFixedTiles() {
        view.resetAllNonFixedTiles();
    }
}
